package com.itany.corejava.code11_io.字节流;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年11月27日 11:30
 */
public class Test03_ByteArrayInputStream {
    public static void main(String[] args) {
        // test01();
        test02();
    }
    public static void test01(){
        byte[] data="Hello World".getBytes();
        try {
            InputStream in=new ByteArrayInputStream(data);
            // System.out.println(in.read());
            byte[] b=new byte[1024];
            int i=-1;
            while((i=in.read(b))!=-1){
                System.out.println(new String(b,0,i));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public static void test02(){
        try {
            ByteArrayOutputStream out=new ByteArrayOutputStream();
            // 将数据写入到内置的字节数组中
            // 只是将数据写入到内存的缓存区中
            out.write("Hello World".getBytes());

            //将输入写入到目的地
            out.flush();


            // 从缓冲区取数据
            //使用平台默认的字符集，通过解码字节将缓冲区内容转换为字符串。
            System.out.println(out.toString());


            //获取内置的字节数组的数据
            //在内存中创建一个新的字节数据空间，并且将缓存区的有效的内容复制到该数组中
            byte[] data=out.toByteArray();
            System.out.println(new String(data));



        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
